// @ts-nocheck
// 文章的处理函数模块
// 导入数据库模块
const db = require('../db');
// 导入处理路径的核心模块
const path = require('path');
const bcrypt = require('bcryptjs/dist/bcrypt');

// 获取用户信息
exports.getUserInfo = (req, res) => {
    console.log(req.auth,req.params);
    // 获取用户id
    const userId = req.params.uid;
    // 定义sql语句
    const sql = `select uid,username,nickname,email,user_pic from users where uid=?`;
    // 执行sql语句
    db.query(sql, userId, (err, results) => {
        if (err) return res.cc(err);
        // 判断是否查询到用户信息
        if (results.length !== 1) return res.cc('获取用户信息失败！');
        // 返回数据
        return res.send({ status: 0, message: '获取用户信息成功！', data: results[0] });
    })
}

// 更新用户信息
exports.updateUserInfo = (req, res) => {
    console.log(req.body,req.query,req.params,'update');
    const uid = req.params.uid;
    // 定义更新用户信息的sql语句
    const sql = `update users set ? where uid=?`;
    // 执行sql语句
    db.query(sql, [req.body, uid], (err, results) => {
        if (err) return res.cc(err);
        if (results.affectedRows !== 1) return res.cc('更新用户信息失败！');
        // 更新成功
        return res.cc('更新用户信息成功！', 0);
    })

}

// 修改密码
exports.updateUserInfoPwd = (req, res) => {
    console.log(req.body,req.query,req.params,'update');
    const uid = req.auth.uid;
    // 定义更新用户信息的sql语句
    const sql = `update users set password=? where uid=?`;

    // 判断旧密码是否正确
    const compareResult = bcrypt.compareSync(req.body.oldPwd, req.auth.password);
    if (!compareResult) return res.cc('原密码错误！');
    // 对新密码加密
    const newPwd = bcrypt.hashSync(req.body.newPwd, 10);
    // 执行sql语句
    db.query(sql, [newPwd, uid], (err, results) => {
        if (err) return res.cc(err);
        if (results.affectedRows !== 1) return res.cc('更新用户密码失败！');
        // 更新成功
        return res.cc('更新用户密码成功！', 0);
    })
}